package com.iskyline.demo.other;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;

/**
 * @author iskyline
 * @version 11
 * @createTime 2023年11月13日 18:53:00
 */
public class PrimeNumber {

    public static void main(String[] args) {
        PrimeNumber primeNumber = new PrimeNumber();
        System.out.println(primeNumber.isPrime(79));;
    }

    /**
     * 没有1和自身之外的因数
     * @param num
     * @return
     */
    public boolean isPrime(int num){

        Set<Integer> factors = new HashSet<>();
        HashMap<Integer,Integer> factorMap = new HashMap<>();
        for (int i = 2; i < num/2; i++) {
            //余数为0，说明是他的因数
            if(num % i == 0 && !factors.contains(i)){
                factors.add(i);
                factors.add(num / i);
                factorMap.put(i,num / i);
            }
        }

        if(factorMap.isEmpty()){
            System.out.println("是质数");
        }else {
            System.out.println("因数有：");
            /*factorMap.entrySet().stream().parallel().forEach(entity->{
                System.out.println(entity.getKey()+","+entity.getValue());
            });*/

            factorMap.entrySet().stream().forEach(entity->{
                System.out.println(entity.getKey()+","+entity.getValue());
            });
        }

        return factorMap.isEmpty();
    }

}
